Skip to content

feat(skill): split architecture-documentation contract into vocabulary + arc42-authoring skill#577

Draft
JensGrote wants to merge 1 commit into
LLM-Coding:mainfrom
JensGrote:feat/split-architecture-documentation-contract
Draft

feat(skill): split architecture-documentation contract into vocabulary + arc42-authoring skill#577
JensGrote wants to merge 1 commit into
LLM-Coding:mainfrom
JensGrote:feat/split-architecture-documentation-contract

Conversation

@JensGrote

Copy link
Copy Markdown
Collaborator

refactor(contract): split architecture-documentation into vocabulary contract + arc42-authoring skill

(German version below)

Splits the over-grown architecture-documentation contract (2922 chars) into:

  1. A vocabulary contract (~340 chars) — declares which anchors apply
  2. A procedural skill arc42-authoring/ — carries the how-to

Closes #529. Absorbs crosscutting-concepts into the skill.


Assessment against project taxonomy

Contract/Skill boundary — catalog evidence

Characteristic Contract (vocabulary) Skill (procedure)
Purpose Pin shared vocabulary — always-on On-demand workflow machinery
Structure template field in contracts.json SKILL.md + references/ + prompts/
Invocation Loaded into every session Invoked when the task calls for it
Size norm (observed) Median 450 chars, max 1200 Unbounded (Socratic: full SKILL.md)
Naming Noun-phrase (architecture-documentation) Verb-phrase (arc42-authoring)

Size analysis — the outlier

Contract Size Pattern
architecture-documentation 2922 DECLARES + PRODUCES + CONSTRAINS
socratic-code-theory-recovery 2513 DECLARES + CONSTRAINS (has companion skill)
explaining-teaching 1226 CONSTRAINS + DELEGATES
tdd-hamburg-style 1191 CONSTRAINS + COMPOSES
All others (14) 141–708 DECLARES or CONSTRAINS

architecture-documentation is the only contract >1200 chars that has no companion skill. socratic-code-theory-recovery is similarly long but justified as a condensed reminder of its companion skill — the procedural depth lives in the skill, not the contract alone.

Precedent: "invoke a skill for depth" pattern

The explaining-teaching contract (#573) proves this pattern works:

  • Contract composes vocabulary (Bloom's, 4MAT, Feynman, Socratic)
  • Procedural depth lives in the socratic-code-theory-recovery skill
  • Contract stays at 1226 chars

Consistency with Harness Inventory

The Harness Inventory page (docs/harness-inventory.adoc) separates "what a layer checks" (definition) from "how to deploy it" (procedure). Same lens: contract = the what, skill = the how.


Changes

1. New skill: skill/arc42-authoring/

skill/arc42-authoring/
├── SKILL.md
└── references/
    ├── traceability-rules.md
    ├── chapter-10-quality-scenarios.md
    ├── chapter-11-structure.md
    ├── chapter-8-baseline.md
    ├── adr-risk-wiring.md
    └── scaffolding.md

Content extracted 1:1 from the current architecture-documentation and crosscutting-concepts contracts. No information lost — only relocated.

2. Shrunken contract: architecture-documentation

From 2922 chars → ~340 chars:

Architecture documentation follows arc42. Diagrams are C4 via PlantUML's bundled C4-PlantUML stdlib (!include <C4/...>). Decisions are Nygard ADRs with a 3-point Pugh Matrix (-1/0/+1). Quality requirements are six-part Quality Attribute Scenarios (Bass/Clements/Kazman). For procedural detail — traceability rules, chapter structure, scaffolding — invoke the arc42-authoring skill.

3. Absorbed: crosscutting-concepts

Moved to skill/arc42-authoring/references/chapter-8-baseline.md. The contract entry is removed from contracts.json.

4. Socratic overlap resolution

The socratic-code-theory-recovery skill's references/arc42.md contains a Phase 1 decomposition guide (Q-IDs, when to stop decomposing) — this is specific to the Socratic workflow, not to arc42 authoring. No overlap — both skills coexist without duplication:

Skill arc42 content Purpose
arc42-authoring Traceability rules, chapter structure, scaffolding Producing documentation
socratic-code-theory-recovery Q3 decomposition hints, leaf-vs-branch criteria Recovering documentation from code

Tradeoff acknowledged

The traceability rules move from always-on to on-demand. For architecture work the skill is invoked anyway — no loss. For someone only reading the contract as a reminder, the detail was already too large for always-on context — this is a correction, not a regression (as #529 states).



Deutsche Version

refactor(contract): architecture-documentation in Vokabular-Contract + arc42-authoring-Skill aufteilen

Teilt den überwachsenen architecture-documentation-Contract (2922 Zeichen) auf in:

  1. Einen Vokabular-Contract (~340 Zeichen) — deklariert welche Anchors gelten
  2. Einen prozeduralen Skill arc42-authoring/ — enthält das Wie

Schließt #529. Absorbiert crosscutting-concepts in den Skill.


Bewertung gegen die Projekt-Taxonomie

Contract/Skill-Grenze — Katalog-Evidenz

Eigenschaft Contract (Vokabular) Skill (Prozedur)
Zweck Geteiltes Vokabular pinnen — always-on On-demand Workflow-Maschinerie
Struktur template-Feld in contracts.json SKILL.md + references/ + prompts/
Aufruf In jeder Session geladen Aufgerufen wenn die Aufgabe es erfordert
Größennorm (beobachtet) Median 450 Zeichen, Maximum 1200 Unbegrenzt (Socratic: vollständige SKILL.md)
Benennung Nomen-Phrase (architecture-documentation) Verb-Phrase (arc42-authoring)

Größenanalyse — der Ausreißer

Contract Größe Pattern
architecture-documentation 2922 DECLARES + PRODUCES + CONSTRAINS
socratic-code-theory-recovery 2513 DECLARES + CONSTRAINS (hat Begleit-Skill)
explaining-teaching 1226 CONSTRAINS + DELEGATES
tdd-hamburg-style 1191 CONSTRAINS + COMPOSES
Alle anderen (14) 141–708 DECLARES oder CONSTRAINS

architecture-documentation ist der einzige Contract >1200 Zeichen ohne Begleit-Skill. socratic-code-theory-recovery ist ähnlich lang, aber gerechtfertigt als kondensierte Erinnerung seines Begleit-Skills — die prozedurale Tiefe lebt im Skill, nicht allein im Contract.

Präzedenzfall: „invoke a skill for depth"-Pattern

Der explaining-teaching-Contract (#573) beweist, dass dieses Pattern funktioniert:

  • Contract komponiert Vokabular (Bloom's, 4MAT, Feynman, Socratic)
  • Prozedurale Tiefe lebt im socratic-code-theory-recovery-Skill
  • Contract bleibt bei 1226 Zeichen

Konsistenz mit der Harness Inventory

Die Harness-Inventory-Seite (docs/harness-inventory.adoc) trennt „was eine Schicht prüft" (Definition) von „wie man sie deployt" (Prozedur). Gleiche Linse: Contract = das Was, Skill = das Wie.


Änderungen

1. Neuer Skill: skill/arc42-authoring/

skill/arc42-authoring/
├── SKILL.md
└── references/
    ├── traceability-rules.md
    ├── chapter-10-quality-scenarios.md
    ├── chapter-11-structure.md
    ├── chapter-8-baseline.md
    ├── adr-risk-wiring.md
    └── scaffolding.md

Inhalt 1:1 extrahiert aus den aktuellen Contracts architecture-documentation und crosscutting-concepts. Keine Information geht verloren — nur umgezogen.

2. Eingedampfter Contract: architecture-documentation

Von 2922 Zeichen → ~340 Zeichen:

Architekturdokumentation folgt arc42. Diagramme sind C4 über PlantUMLs gebundelte C4-PlantUML-Stdlib (!include <C4/...>). Entscheidungen sind Nygard-ADRs mit einer 3-Punkte Pugh-Matrix (-1/0/+1). Qualitätsanforderungen sind sechsteilige Quality Attribute Scenarios (Bass/Clements/Kazman). Für prozedurale Details — Traceability-Regeln, Kapitelstruktur, Scaffolding — den arc42-authoring-Skill aufrufen.

3. Absorbiert: crosscutting-concepts

Verschoben nach skill/arc42-authoring/references/chapter-8-baseline.md. Der Contract-Eintrag wird aus contracts.json entfernt.

4. Socratic-Überschneidung aufgelöst

Die references/arc42.md des socratic-code-theory-recovery-Skills enthält einen Phase-1-Dekompositions-Guide (Q-IDs, wann man aufhört zu dekomponieren) — das ist spezifisch für den Socratic-Workflow, nicht für arc42-Authoring. Keine Überschneidung — beide Skills koexistieren ohne Duplikation:

Skill arc42-Inhalt Zweck
arc42-authoring Traceability-Regeln, Kapitelstruktur, Scaffolding Dokumentation produzieren
socratic-code-theory-recovery Q3-Dekompositions-Hints, Leaf-vs-Branch-Kriterien Dokumentation aus Code recovern

Trade-off anerkannt

Die Traceability-Regeln wandern von always-on zu on-demand. Für Architekturarbeit wird der Skill ohnehin aufgerufen — kein Verlust. Für jemanden, der den Contract nur als Erinnerung liest, war das Detail bereits zu umfangreich für always-on-Kontext — dies ist eine Korrektur, keine Regression (wie #529 feststellt).

Extract procedural content from the over-grown architecture-documentation
contract (2922 chars) into a new arc42-authoring skill. Absorb
crosscutting-concepts contract into the skill as chapter-8-baseline.md.
Shrink architecture-documentation contract to vocabulary only (~385 chars).

Closes LLM-Coding#529
@coderabbitai

coderabbitai Bot commented Jun 5, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yml

Review profile: CHILL

Plan: Pro

Run ID: c1f8220f-f0cf-4459-bf6b-dcc2b9965474

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Split the over-grown Architecture Documentation contract: vocabulary stays, procedure moves to a skill

1 participant